In some environments, an external media device—such as, for example, a USB memory stick, an external disk drive, a DVD disk, a network-accessible computing device, or network-accessible storage device—stores a computing environment that a user may access from a computing device. Such a computing environment may include an operating system image as well as applications, files, and data, including user data. In a typical environment, a host computing device retrieves data (such as an operating system image) from the external media device and executes the operating system retrieved from the external media device instead of an operating system provided by the host computing device. Such environments typically allow a user to access a computing environment from different physical locations—such as from a work site, a home, or a public location, such as from a machine at a client site or an Internet café—without leaving potentially sensitive data on different host machines.
One drawback to accessing a computing environment stored on an external media device is that the operating system image typically needs to include all the information an operating system relies upon to execute on any given host machine. However, different host machines generally have different sets of hardware devices made by different manufacturers; different devices frequently require different device drivers in order to work properly. Because the operating system images are typically generated without knowledge of a hardware configuration of a host machine, one operating system image must work with many different kinds of hardware devices. Should the operating system image not include a device driver for a device on a host machine, the user will typically be asked to provide one. However, identifying and retrieving the needed driver may be a time-consuming or challenging project, which may result in a sub-optimal user experience.
One solution is to attempt to store, in the operating system image, drivers for all devices. However, it is typically infeasible to pre-install or package drivers for all devices in the operating system image due to the wide variety of available devices and manufacturers. Additionally, it may be expensive or impractical to store large operating system images on external media devices—for example, large operating system images that require additional space on a storage area network may necessitate the acquisition of additional storage devices, or, in the case of DVDs or memory sticks, may result in images that are too large to store on a single external media device.